package main

import (
	"fmt"
	"net/http"
	//空一格的目的是区分包的类型
	"github.com/gin-gonic/gin"
)

func uploadHandler(c *gin.Context) {
	//提取用户上传的文件
	fileObj, err := c.FormFile("filename")
	if err != nil {
		c.JSON(http.StatusInternalServerError, gin.H{
			"err": err,
		})
		return
	}
	//fileobj是上传文件的对象
	//fileobj.filename 拿到上传文件的名字,./%s是指本地路径
	filePath := fmt.Sprintf("./%s", fileObj.Filename)
	//保存到本地路径
	c.SaveUploadedFile(fileObj, filePath)
	c.JSON(http.StatusOK, gin.H{
		"msg": "OK",
	})
}

func main() {
	r := gin.Default()
	//r.LoadHTMLFiles("./upload.html") 加载 HTML 模板文件，
	//使得我们可以使用 c.HTML() 方法在请求处理函数中渲染该模板文件。
	r.LoadHTMLFiles("./upload.html")
	r.GET("/upload", func(c *gin.Context) {
		//通过调用 c.HTML() 方法，可以将生成的 HTML 页面作为响应内容返回给客户端
		c.HTML(http.StatusOK, "upload.html", nil)
	})
	r.POST("/upload", uploadHandler)
	r.Run()
}
